Extracting Object Interactions Out of Software Contracts Using Model Transformations
نویسندگان
چکیده
One popular approach to object design proposes to identify responsibilities from software contracts, apply a number of principles to assign them to objects, and finally construct an object interaction that realizes the contract. This three-step activity is currently a manual process that is time-consuming and error-prone, and is among the most challenging activities in object-oriented development. In this paper, we present a model transformation that partially automates this activity. Such a transformation is modularized in three stages. The first stage automatically transforms a software contract to a trace of state modification actions. In the second stage the designer manually extends the trace with design decisions. Finally, the extended trace is automatically transformed to an object interaction in the third stage. A prototype of the whole transformation was developed and successfully applied to a case study from the literature. Our technique allows the extraction of valuable information from software contracts, provides a bridge between analysis and design artifacts, and significantly reduces the effort of interaction design.
منابع مشابه
Extracting Visual Contracts from Java Programs
Visual contracts model the operations of components or services by preand post-conditions formalised as graph transformation rules. They provide a precise intuitive notation to support testing, understanding and analysis of software. However, due to their detailed specification of data states and transformations, modelling real applications is an error-prone process. In this paper we propose a ...
متن کاملObject-oriented transformations for extracting aspects
In the migration of object-oriented systems towards the aspect technology, after locating fragments of code presenting a crosscutting behavior and before extracting such code to aspects, transformations may be needed in the base program. Such transformations aim to associate crosscutting code to points of the base program that can be captured using the pointcut descriptor model of aspect-orient...
متن کاملCAViT: a Consistency Maintenance Framework based on Transformation Contracts
Model driven engineering is a software engineering methodology that aims to manage the complexity of frameworks by relying on models and transformations. Unfortunately it is only poorly understood where and how this new methodology differs from traditional methodologies. Therefore, this paper formalizes how contract based model transformation extends existing design by contract theory. The key ...
متن کاملThe K-Component Architecture Meta-model for Self-Adaptive Software
Software architectures have recently emerged as a level of design concerned with specifying the overall structure of a system. Traditionally, software architectures only provide static descriptions of the participants and interaction structures in a system. Dynamic software architectures, however, can be reconfigured at runtime and therefore provide support for building dynamically adaptable ap...
متن کاملOCL for the Specification of Model Transformation Contracts
A major challenge of the OMG Model-Driven Architecture (MDA) initiative is to be able to define and execute transformations of models. Such transformations may be defined in several ways and with various motivations. Our motivation is to specify model transformations independently of any transformation technology. To achieve this goal, we propose to define transformation contracts. We argue tha...
متن کامل